import axios from 'axios'

// 使用同步调用方式的图片生成API
export async function generateImage(prompt: string, width: number = 512, height: number = 512) {
  try {
    // 使用同步调用方式
    console.log("正在提交图像生成任务...");
    const response = await axios.post(
      "https://open.bigmodel.cn/api/paas/v4/images/generations",
      {
        "model": "cogview-3-flash",
        "prompt": prompt,
        "user_id": "user123456",
        "width": width,
        "height": height
      },
      {
        headers: {
          "Authorization": "Bearer 28d3397befca4ff5b864015cd43e1466.AGzDB93tmhnS2jxQ",
          "Content-Type": "application/json"
        }
      }
    );

    // 判断是否生成成功
    if (response.data && response.data.data && response.data.data.length > 0) {
      const imageUrl = response.data.data[0].url;
      console.log("✅ 图像生成成功!");
      console.log("图像URL: " + imageUrl);
      return {
        success: true,
        data: {
          url: imageUrl
        }
      };
    } else {
      console.log("❌ 图像生成失败: 返回数据格式不正确");
      console.log("返回数据:", JSON.stringify(response.data, null, 2));
      return {
        success: false,
        message: "图像生成失败: 返回数据格式不正确"
      };
    }
  } catch (error) {
    console.error("❌ 调用失败:", error.response?.data || error.message);
    throw error;
  }
}

// 这个函数保持不变
export async function getImageResult() {
  return {
    success: true,
    message: '图片已准备好'
  };
}

// 更新generateImageComplete函数
export async function generateImageComplete(prompt: string) {
  try {
    // 调用generateImage函数时指定更小的尺寸参数
    const result = await generateImage(prompt, 256, 256); // 进一步减小到256x256
    if (result.success && result.data?.url) {
      return [{
        url: result.data.url
      }];
    } else {
      console.error('图片生成失败:', result.message || '未知错误');
      throw new Error(result.message || '图片生成失败');
    }
  } catch (error) {
    console.error('图片生成流程失败:', error);
    throw error;
  }
}